<?php
require($_SERVER['DOCUMENT_ROOT'].'/wordpress/wp-blog-header.php' );
?>

<?php

function getListadoLugares()
{
	global $wpdb;
	global $current_user;
	
	$query = "SELECT id, locacion, bloqueado FROM cau_lugares";
	if($current_user->user_level!=10)
	{
		$query.=" WHERE bloqueado=0";
	}
	return $wpdb->get_results($query);
}

function getDefaultError($message=NULL)
{
	if($message==NULL)
	{
		echo "datos invalidos";
	}
	else
	{
		echo $message."<br><br><br>";
	}
		
	cau_show_button('volver','Volver','OnReset()');
}

function cau_show_places($lugares,$default=-1,$attributes=null) 
{
	$defaultStyle = "style=\"height: 20px; width: 380px;color:black;\"";
	$blockedStyle = "style=\"height: 20px; width: 380px;color:red;\"";
	
	$selectStyle = $defaultStyle;
	
	if($default!=-1)
	{
		foreach($lugares as $lugar)
		{
			if($lugar->bloqueado && $lugar->id==$default)
			{
				$selectStyle = $blockedStyle;
				break;
			}
		}
	}
	
?>
	<select id="selecion-lugares" name="lugar" size=1 onchange='onCauPlaceChange(this);' <?php get_attributes($attributes)?> <?php echo $selectStyle ?>> 
		<option value="-1"></option>
		<?php
		foreach($lugares as $lugar)
		{
			?>
				<option value="<?php 
				echo $lugar->id 
				?>" <?php 
				if($default==$lugar->id)
				{
					echo "selected=\"true\"";
				} ?> <?php
				if($lugar->bloqueado)
				{
					echo $blockedStyle;
				}
				else
				{
					echo $defaultStyle;
				}
				?> ><?php 
				echo $lugar->locacion
				?></option>
			<?php
		}
		?>
	</select>
<?php
}
?>

<?php

function get_attributes($attributes=null)
{
	if($attributes!=null)
	{
		$str = '';
		foreach ($attributes as $attname => $attvalue)
		{
			$str.=$attname . "=" . "\"".$attvalue."\" ";
		}
		echo $str;
	}
}

function cau_begin_table_form()
{
?>
	<form> 
	<table> 
<?php	
}

function cau_end_table_form()
{
?>
	</table>
	</form> 
<?php	
}

function cau_begin_table_row($fieldName)
{
?>
	<tr><td><?php echo $fieldName?></td><td>
<?php
}

function cau_end_table_row()
{
?>
	</td></tr>
<?php
}

function get_default_pais($pais,$default=-1)
{
	if(($default==-1 && $pais->is_default_option) || $pais->id==$default)
	{
		echo "selected=\"selected\""; 
	}
}

function cau_show_paises($name,$paises,$default=-1,$attributes=null) 
{
?>
	<select id="<?php echo $name?>" size=1 style="width: 200px" <?php get_attributes($attributes)?>> 
	<?php
	foreach($paises as $pais)
	{
		?>
		<option value="<?php echo $pais->id?>" <?php get_default_pais($pais,$default)?>><?php echo $pais->name ?></option>
		<?php
	}
	?>
	</select>
<?php
}

function cau_show_inputbox($name,$value,$attributes=null)
{
?>
	<input type="text" id="<?php echo $name?>" <?php get_attributes($attributes)?> value="<?php echo $value ?>" style="width: 200px"/>
<?php
}

function cau_show_button($classname,$title,$callback)
{
?>
	<a class="button <?php echo $classname ?>" onClick='<?php echo $callback ?>;'><?php echo $title ?></a>
<?php
}

function cau_show_checkbox($checked,$name,$value,$attributes=null)
{
?>
	<input type="checkbox" id="<?php echo $name ?>" <?php if($checked) echo "checked=\"true\"" ?> <?php  get_attributes($attributes) ?>><?php echo $value ?>
<?php
}

function get_cau_file_path($relativepath)
{
	echo ret_cau_file_path($relativepath);
}

function ret_cau_file_path($relativepath)
{
	return "\"http://".$_SERVER['HTTP_HOST']."/wordpress/wp-content/themes/bp-columns/".$relativepath."\"";
}

function cau_show_date_picker($pickername,$attributes=null)
{
?>
	<input type="text" name="DPC_<?php echo $pickername?>" id="DPC_<?php echo $pickername?>" size="14" <?php get_attributes($attributes)?>>
<?php	
}

class DateTimeSpanish extends DateTime {
    public function format($format) {
        $english = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday','January','February','March','April','May','June','July','August','September','October','November','December');
        $spanish = array('Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado', 'Domingo','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
        return str_replace($english, $spanish, parent::format($format));
    }
}

function get_date_on_format($date)
{
	$oDate = new DateTimeSpanish($date);
	$sDate = $oDate->format("l j F Y");
	echo $sDate;
}

function EventoEnPlazo($event)
{
	//si todavia no se llega a la fecha maxima de inscripcion(fecha_salida)
	return (strtotime(date("Y-m-d")) < strtotime($event->fecha_salida));
}

function EventoEnCurso($event)
{
	// salida <= hoy <= llegada
	$hoy = strtotime(date("Y-m-d")); 
	return (( $hoy >= strtotime($event->fecha_salida)) && ($hoy <= strtotime($event->fecha_llegada)));
}

function EventoEsEditable($event)
{
	global $current_user;
	
			  /*     soy administrador    */     /*    fui yo quien creo el evento    */
	return ( ($current_user->user_level==10) || ($current_user->ID == $event->id_creador) );
}

function UsuarioParticipaDeEvento($event)
{
	global $current_user;
	global $wpdb;	
	$query = "SELECT COUNT(*) FROM `cau_event_participants` WHERE `id_evento`=". $event->id_evento ." AND `id_user`=". $current_user->ID;
	return ($wpdb->get_var($query)!=0);
}

class accion_evento
{
	var $eventoId;
	var $nombre;
	var $imagen;
	var $callback;
	var $attributes;
	
	function __construct()
	{
		$this->eventoId = null;
		$this->nombre = null;
		$this->imagen = null;
		$this->callback = null;
		$this->attributes = null;
	}
	
	function get_callback()
	{
		if($this->callback == null)
			return;
			
		echo "onclick=\"".$this->callback."(".$this->eventoId.")\"";
	}
	
	function get_accion()
	{
		if($this->eventoId==null || $this->imagen==null)
		{
			echo "(null)";
			return;
		}
		?>
		
		<img  src=<?php get_cau_file_path($this->imagen) ?> alt="<?php echo $this->nombre ?>" width="25" height="25" title="<?php echo $this->nombre ?>" <?php $this->get_callback() ?> <?php get_attributes($this->attributes) ?> />
		
		<?php
	}
};

function cau_show_event_table_info($event,$edit=false)
{
	global $current_user;
	global $wpdb;

	$abierto	= ($event->estado == 0);
	$cerrado	= ($event->estado == 1);
	$enplazo	= EventoEnPlazo($event);
	$encurso	= EventoEnCurso($event);
	$editable	= EventoEsEditable($event);
	$participa	= UsuarioParticipaDeEvento($event);
	
	//inscribirme/desinscribirme: $abierto y $enplazo
	//editable: $abierto y $enplazo y $editable
	//cancelable: $abierto y $editable
	//cerrable: $abierto y $encurso	
	
	$accion1			= new accion_evento;
	$accion1->eventoId	= $event->id_evento;
	$accion1->nombre	= "Ver Asistentes";
	if(!$edit)
	{
		$accion1->callback	= "OnShowAsistentes";
		$accion1->imagen	= "images/asistentes.png";
		$accion1->attributes = array('style'=>'cursor:hand;');		
	}
	else
	{
		$accion1->imagen	= "images/asistentes-disabled.png";
	}
	
	$accion2			= new accion_evento;
	$accion2->eventoId	= $event->id_evento;
	
	//se puede inscribir/desinscribir	
	
	if(!$participa)
	{	
		$accion2->nombre = "Sumarse";
	}
	else
	{
		$accion2->nombre = "Restarse";
		
	}			
	
	if($enplazo && $abierto && !$edit)
	{
		if(!$participa)
		{
			$accion2->imagen = "images/sumarse.png";
			$accion2->callback = "OnSumarse";
		}
		else
		{
			$accion2->imagen = "images/restarse.png";
			$accion2->callback = "OnRestarse";		
		}
		$accion2->attributes = array('style'=>'cursor:hand;');		
	}
	else
	{
		if(!$participa)
		{
			$accion2->imagen = "images/sumarse-disabled.png";
		}
		else
		{
			$accion2->imagen = "images/restarse-disabled.png";
		}
		$accion2->attributes = array('style'=>'cursor:not-allowed;');
	}
	
	$accion3			= new accion_evento;
	$accion3->eventoId	= $event->id_evento;
	$accion3->nombre	= "Editar";
	
	if($abierto && $enplazo && $editable && !$edit)
	{
		$accion3->imagen = "images/editar.png";
		$accion3->callback = "OnEditar";
		$accion3->attributes = array('style'=>'cursor:hand;');	
	}
	else
	{
		$accion3->imagen = "images/editar-disabled.png";
		$accion3->attributes = array('style'=>'cursor:not-allowed;');
	}
	
	$accion4			= new accion_evento;
	$accion4->eventoId	= $event->id_evento;
	$accion4->nombre	= "Cancelar";
	//if($abierto && $editable && !$encurso && !$edit)
	if($abierto && $enplazo && $editable && !$edit)
	{
		$accion4->imagen = "images/cancelar.png";
		$accion4->callback = "OnCancelar";
		$accion4->attributes = array('style'=>'cursor:hand;');	
	}
	else
	{
		$accion4->imagen = "images/cancelar-disabled.png";
		$accion4->attributes = array('style'=>'cursor:not-allowed;');
	}
	
	$accion5			= new accion_evento;
	$accion5->eventoId	= $event->id_evento;
	$accion5->nombre	= "Cerrar";
	if($abierto && !$enplazo && !$edit)
	{
		$accion5->imagen = "images/cerrar.png";
		$accion5->callback = "OnCerrar";
		$accion5->attributes = array('style'=>'cursor:hand;');	
	}
	else
	{
		$accion5->imagen = "images/cerrar-disabled.png";
		$accion5->attributes = array('style'=>'cursor:not-allowed;');
	}
	
?>
	<tr>
		<td style="
			width: 320px;
			border-width: 1px;
			padding: 10px;
			border-style: ridge;
			border-color: gray;
			background-color: rgb(255, 255, 240);"
		>
		<p style="font-size:110%;">
		Lugar:
		<?php
			echo $event->locacion;
		?>
		</p>
		<p style="font-size:smaller;">
		<?php
			get_date_on_format($event->fecha_salida);
		?>
		-
		<?php
			get_date_on_format($event->fecha_llegada);
		?>
		</p>
		<?php
			if($edit)
			{
				$tomorrow = date('d/m/Y',mktime(0,0,0,date('m'), date('d')+1, date('Y')));
			?>
				<table>
					<tr>
						<td>Fecha Inicio</td>
						<td><?php cau_show_date_picker("edit_event_date1_DD/MM/YYYY",array('value' => date_create_from_format('Y-n-j',$event->fecha_salida )->format('j/n/Y'), 'datepicker_min' => $tomorrow)) ?> </td>
					</tr>
					<tr>
						<td>Fecha Termino</td>
						<td><?php cau_show_date_picker("edit_event_date2_DD/MM/YYYY",array('value' => date_create_from_format('Y-n-j',$event->fecha_llegada)->format('j/n/Y'), 'datepicker_min' => $tomorrow)) ?> </td>
					</tr>
					<tr>
					<td>
					<?php 
					cau_show_button('ActualizarEdicion','Actualizar','OnActualizarEvento('.$event->id_evento.')');
					?>
					</td>
					<td>
					<?php 
					cau_show_button('CancelarEdicion','Cancelar','OnCancelarEdicion()');
					?>
					</td>
					</tr>
				</table>
			<?php
			}
		?>
		</td>
		<td style="
			border-width: 1px;
			padding: 5px;
			border-style: ridge;
			border-color: gray;
			background-color: rgb(255, 255, 240);">
			<center>
			<?php			
			$accion1->get_accion();
			?>&nbsp;<?php
			$accion2->get_accion();
			?>&nbsp;<?php
			$accion3->get_accion();
			?>&nbsp;<?php
			$accion4->get_accion();
			?>&nbsp;<?php
			$accion5->get_accion();
			?>
			</center>
		</td>		
	</tr>
<?php	
}

?>
